// 导入 express
const express = require('express')
// 导入 cors 解决跨域中间件
const cors = require('cors')
// 导入 用户信息 路由模块
const userRouter = require('./router/user')
// 用户详细信息 路由模块
const userinfoRouter = require('./router/userinfo')
// 导入 文章发布 路由模块
const articleRouter = require('./router/article')
// 导入 文章分类
const articateRouter = require('./router/articate')
// 导入 标签 路由模块
const tagRouter = require('./router/tag')
// 导入 基础设置 路由模块
const basisRouter = require('./router/station_setting')
// 导入 动态 路由模块
const dynamic = require('./router/dynamic')
// 导入 关于我 路由模块
const aboutme = require('./router/aboutme')
// 导入body-parser 解析表单数据模块
const bodyParser = require('body-parser')
// 创建 express 服务器实例
const app = express()

// 将 cors 注册为全局中间件，解决浏览器跨域问题
app.use(cors())

// 配置解析表单数据的中间件，注意：只解析 application/x-www-form-urlencoded 格式的表单数据
app.use(express.urlencoded({ extends: false }))
// 配置解析表单 json 格式的数据
app.use(bodyParser.json())

// 封装一个发送响应的中间件
app.use((req, res, next) => {
    res.cc = function(err, status = 1) {
        res.send({
            status,
            msg: err instanceof Error ? err.message : err
        })
    }
    next()
})

// 注册 用户信息 路由模块
app.use('/api', userRouter)
//  注册 用户详细信息 路由模块
app.use('/api/my', userinfoRouter)
// 注册 文章发布 路由模块
app.use('/api', articleRouter)
// 注册 文章分类 路由模块
app.use('/api', articateRouter)
// 注册 标签 路由模块
app.use('/api', tagRouter)
// 注册 基础设置 路由模块
app.use('/api', basisRouter)
// 注册 动态 路由模块
app.use('/api', dynamic)
// 注册 关于我 路由模块
app.use('/api', aboutme)

// 调用服务器实例的 listen方法，指定端口号并启动 web 服务
app.listen(8888, () => {
  console.log('api server running at http://localhost:8888')
})
